#ifndef __COLOR_H__
#define __COLOR_H__

#include <gl/gl.h>
#include <gl/glut.h>

#include "CoordF.h"

/*
 * Classe: Color
 *
 *   Representa cada uma das sete cores das bolinhas no jogo
 *
*/

class Color 
{
      private:
              CoordF rgb;
      public:
             static const CoordF mainColors[];
             enum colorNames { RED, GREEN, BLUE, YELLOW, PURPLE, BLACK, WHITE };
             
             Color() { setColor(Color::WHITE); }
             Color(CoordF c) { setColor(c); }
             Color(GLfloat x, GLfloat y, GLfloat z) { setColor(x, y, z); }
             Color(int ix) { setColor(ix); }
             ~Color() {};
             
             void setColor(CoordF c) { rgb = c; }
             void setColor(GLfloat x, GLfloat y, GLfloat z) { rgb.x = x; rgb.y = y; rgb.z = z; }
             void setColor(int ix) { rgb = mainColors[ix]; }

             CoordF getColor() { return rgb; }

             void setRed(GLfloat val) { rgb.x = val; }
             void setGreen(GLfloat val) { rgb.y = val; }
             void setBlue(GLfloat val) { rgb.z = val; }
             
             GLfloat getRed() { return rgb.x; }
             GLfloat getGreen() { return rgb.y; }
             GLfloat getBlue() { return rgb.z; }
             
             void bind() { glColor3d( rgb.x, rgb.y, rgb.z ); }

};

#endif
